﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PROFIP.Persistence.DTO.Scales;

namespace PROFIP
{
    public partial class BPRSForm : ScaleForm
    {
        public BPRSForm(MainForm mainForm, BPRSDTO dto, int avaliationSheetIndex)
            : base(mainForm, dto, avaliationSheetIndex)
        {
            InitializeComponent();
            if (dto == null) return;

            PreocupacaoSomatica.SelectedIndex = dto.PreocupacaoSomatica;
            Ansiedade.SelectedIndex = dto.Ansiedade;
            TendenciasSuicidarias.SelectedIndex = dto.TendenciasSuicidarias;
            SentimentosDeCulpa.SelectedIndex = dto.SentimentosDeCulpa;
            Hostilidade.SelectedIndex = dto.Hostilidade;
            HumorExaltado.SelectedIndex = dto.HumorExaltado;
            Grandiosidade.SelectedIndex = dto.Grandiosidade;
            Desconfianca.SelectedIndex = dto.Desconfianca;
            Alucinacoes.SelectedIndex = dto.Alucinacoes;
            ConteudoInsolitoDoPensamento.SelectedIndex = dto.ConteudoInsolitoDoPensamento;
            ComportamentoBizarro.SelectedIndex = dto.ComportamentoBizarro;
            NegligenciaDaPropriaPessoa.SelectedIndex = dto.NegligenciaDaPropriaPessoa;
            Desorientacao.SelectedIndex = dto.Desorientacao;
            DesorganizacaoConceptual.SelectedIndex = dto.DesorganizacaoConceptual;
            EmbotamentoEfectivo.SelectedIndex = dto.EmbotamentoEfectivo;
            RessonanciaAfectiva.SelectedIndex = dto.RessonanciaAfectiva;
            LentificacaoMotora.SelectedIndex = dto.LentificacaoMotora;
            Tensao.SelectedIndex = dto.Tensao;
            AusenciaDeColaboracao.SelectedIndex = dto.AusenciaDeColaboracao;
            Excitabilidade.SelectedIndex = dto.Excitabilidade;
            Distractibilidade.SelectedIndex = dto.Distractibilidade;
            HiperactividadeMotora.SelectedIndex = dto.HiperactividadeMotora;
            Maneirismos.SelectedIndex = dto.Maneirismos;
            Application.DoEvents();
        }

        private void onClose(object sender, FormClosingEventArgs e)
        {
            BPRSDTO dto = new BPRSDTO();
            dto.PreocupacaoSomatica = PreocupacaoSomatica.SelectedIndex;
            dto.Ansiedade = Ansiedade.SelectedIndex;
            dto.TendenciasSuicidarias = TendenciasSuicidarias.SelectedIndex;
            dto.SentimentosDeCulpa = SentimentosDeCulpa.SelectedIndex;
            dto.Hostilidade = Hostilidade.SelectedIndex;
            dto.HumorExaltado = HumorExaltado.SelectedIndex;
            dto.Grandiosidade = Grandiosidade.SelectedIndex;
            dto.Desconfianca = Desconfianca.SelectedIndex;
            dto.Alucinacoes = Alucinacoes.SelectedIndex;
            dto.ConteudoInsolitoDoPensamento = ConteudoInsolitoDoPensamento.SelectedIndex;
            dto.ComportamentoBizarro = ComportamentoBizarro.SelectedIndex;
            dto.NegligenciaDaPropriaPessoa = NegligenciaDaPropriaPessoa.SelectedIndex;
            dto.Desorientacao = Desorientacao.SelectedIndex;
            dto.DesorganizacaoConceptual = DesorganizacaoConceptual.SelectedIndex;
            dto.EmbotamentoEfectivo = EmbotamentoEfectivo.SelectedIndex;
            dto.RessonanciaAfectiva = RessonanciaAfectiva.SelectedIndex;
            dto.LentificacaoMotora = LentificacaoMotora.SelectedIndex;
            dto.Tensao = Tensao.SelectedIndex;
            dto.AusenciaDeColaboracao = AusenciaDeColaboracao.SelectedIndex;
            dto.Excitabilidade = Excitabilidade.SelectedIndex;
            dto.Distractibilidade = Distractibilidade.SelectedIndex;
            dto.HiperactividadeMotora = HiperactividadeMotora.SelectedIndex;
            dto.Maneirismos = Maneirismos.SelectedIndex;
            this.mainForm.updateBPRS(dto, avaliationSheetIndex);
        }

        private void BPRS_SelectedIndexChanged(object sender, EventArgs e)
        {
            int sum = 0;
            foreach (Control control in Controls)
            {
                if (!(control is ComboBox)) continue;
                ComboBox box = ((ComboBox)control);
                if(box.SelectedIndex == -1) continue;
                sum += box.SelectedIndex;
            }
            total.Text = sum+"";
        }

        public String GetScore()
        {
            return total.Text;
        }
    }
}
